We are pleased to announce Kallithea 0.6.0, with as most important change the migration from Python 2 to Python 3.
In addition to migrating to Python 3, there has been a lot of (big) internal cleanup, improvements and fixes in several areas. Unavoidably, this also means a risk of having introduced new bugs or regressions.
Password hashing on Windows is now also done with bcrypt
like on Unix/Linux,
although the original sha256
password hashes are still recognized.
Support for Mercurial 5.4 was added.
The Celery support code has been reworked to use version 4 instead of 3. Along
with that, the Celery configuration settings in the .ini
file have changed
too.
The uWSGI configuration template has been tweaked.
Some internal caching functionality has been dropped. The caching was complex, had some overhead, and was not entirely reliable. Some performance benchmarks might have regressed, but overall performance should have improved in most real world setups with multiple worker processes and multiple repositories.
See 'Changes' below for a more detailed list of changes most relevant to users.
Upgrading from 0.5.x
Please refer to the upgrade instructions in the documentation for detailed steps: https://kallithea.readthedocs.io/en/stable/upgrade.html. Below are just some specific notes.
As mentioned in the upgrade instructions, generate a new configuration file and apply the necessary changes to fit your installation. There have been changes in the configuration file; starting from the old one would be a source of errors or confusion.
There are also some minor database migration steps.
Changes
Below are the most relevant changes between 0.5.2 and 0.6.0. Note that it is not a complete list: many changes are purely internal refactoring. Please refer to the source repository if you are interested in full details.
API
- better error logging for API usage errors - say which request failed to encode response cs
Authentication
- also use safe password hashing on Windows using
bcrypt
cs
Caching
- drop unused repo model cache cs
- drop problematic
sql_cache_short
beaker cache and related code cs - drop repository
CacheInvalidation
cs - introduce
long_term_file
beaker cache to store README and RSS cache on disk where it is reusable between processes - not in worker memory cs
Celery
- upgrade to Celery 4 cs
- fix logging from inside tasks cs
- fix
send_email
to work with JSON encoding (Issue #363) cs - drop deprecated
celery.result.dburi
cs - fix spelling of
celery.result.serializer
cs
CLI commands
config-create
: show options used for generating.ini
, and list what alternative values are supported cs- fix
--full
option ofindex-create
cs - fix indexing of repos where last indexed revision has been stripped cs
Configuration file (ini)
- tweak template configuration for TurboGears2's handling of application errors cs
- drop AppEnlight from configuration template - it seems to be dead and disappeared cs
- uwsgi: slim down and tweak the default
[uwsgi]
configuration section cs cs2 - uwsgi: drop unnecessary dependency of
http
module - just usehttp-socket
directly cs - uwsgi: clarify that
--ini-paste-logged
currently requirespastescript
cs - better detection and logging of invalid configuration of 'issue patterns' cs cs2 cs3
Database
- drop superfluous space in
UserGroup
relationship definition cs
Documentation
- ssh: mention how to use multiple
authorized_keys
files cs
Email templates
- fix missing translation of titles and buttons cs
User interface
- fix page navigation/scrolling when toggling "Follow" status cs
- journal feed: don't include email in author name - avoid double data cs
- show toggleable "Follow" status in repo groups' repo list cs
- use fork icon for the fork option (Issue #356) cs
Version control systems support
Mercurial
- bump minimum Mercurial version to 5.1 cs
- support Mercurial 5.4 cs
- always show and run Mercurial hooks in alphabetical order (Issue #246) cs
- read everything from
hgrc
, without config section whitelisting (Issue #246) cs - set
HGPLAIN
globally to minimize potential impact from readinghgrc
configuration cs
Other changes
- docs: fix
contributing.rst
reference toSession.remove()
cs - i18n: update translations for French, German, Greek, Luxembourgish, Russian, Polish
- make error reporting by mail work with secure mail servers cs
- officially support Python 3 cs
- setup: various version bumps of external dependencies
- setup: install pip in virtualenv to make sure we have the latest version cs
- windows: fix import of posix-only
pwd
module (Issue #367) cs
Thanks
We would like to thank everyone that contributed to the Kallithea repository (directly or by updating translations in Weblate) since release 0.5.2 (the numbers are the amount of commits)...
339 Mads Kiilerich
23 Thomas De Schampheleire
3 Ross Thomas
3 J. Lavoie
2 Private
1 robertus
1 Dennis Fink
1 Asterios Dimitriou
1 Étienne Gilli
... as well as everyone contributing in other ways, e.g. by testing, reporting issues, discussing via mail or IRC, etc.